﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Pay_My_Interface.Entity.Product;
using Pay_My_Interface.Entity;
using Pay_My_Interface.Entity.Movement;

namespace Pay_My_Interface.Remote
{
    public interface IRemote
    {

        List<ICatalog> getAllCatalogs();
        List<ICategory> getAllCategories();
        List<ICatalog> getAllMenu();
        List<IProduct> getAllProducts();
        List<IUser> getAllUsers();
        List<IUser> getUsersByStat(bool? member, bool? admin);

        IProduct GetProductByCode(string code);
        IUser getUserByCode(string code);

        ICatalog addCatalog(ICatalog catalog);
        ICategory addCategory(ICategory category);
        IMenu addMenu(IMenu category);
        IProduct addProduct(IProduct product);
        IUser addUser(IUser user);

        void removeCatalog(ICatalog catalog);
        void removeCategory(ICategory category);
        void removeMenu(IMenu menu);
        void removeProduct(IProduct product);
        void removeUser(IUser user);

        void sendStockChange(IStock mouvementStock);
        void sendFundsChange(IFunds mouvementFonds);
        void sendSaleTransaction(ISale vente);

        double Funds
        {
            get;
        }
    }

    
        

        
        

        
}
